package cn.helele;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.http.client.OkHttp3ClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

//@SpringBootApplication
//@EnableDiscoveryClient //开启Eureka客户端
//@EnableCircuitBreaker/@EnableHystrix // 开启熔断

@SpringCloudApplication
@EnableFeignClients// 开启Feign客户端
public class ApplicationConsumer {

    public static void main(String[] args) {
        SpringApplication.run(ApplicationConsumer.class, args);
    }

    /**
     * Feign中已经集成了Ribbon依赖和自动配置。因此我们不需要额外引入依赖，也不再需要注册RestTemplate对象了
     * 配置文件中的使用方式保持不变
     */
//    @Bean
//    @LoadBalanced // 发起的http请求会被Ribbon拦截
//    public RestTemplate restTemplate() {
//        // 这次我们使用了OkHttp客户端,只需要注入工厂即可
//        return new RestTemplate(new OkHttp3ClientHttpRequestFactory());
//    }

}
